#include<bits/stdc++.h>
using namespace std;
int n;
int r[100010];
int f[100010];
int k[100010];
int maxn=0;
void solve(int minri)
{
    //if(minri==maxn)return;
    int mini=1e9,mind=1e9;
    bool flag=true;
    for(int i=0;i<n;i++)
    {
        if(r[i]==r[minri])f[i]=1;
        if(f[i]==0)flag=false;
    }
    cout<<minri<<endl;
    if(flag==true)return;
    for(int i=0;i<n;i++)
    {
    /* if(r[i]==minr)continue;
       for(int j=0;j<n;j++)
        {
            if(!k[i]&&!f[i]&&r[i]>r[j]&&!k[j])
            {
                mind=r[i]-r[j];
            }
        }*/
        if(k[i]||f[i])continue;
        if(r[i]<=r[minri])continue;
        if(mind>r[i]-r[minri])
        {
            mind=r[i]-r[minri];
            mini=i;
        }
    }
    k[minri]=1;
    f[mini]=1;
    for(int i=0;i<n;i++)
    {
        if(!k[i]&&r[i]<=r[minri])
        {
            minri=i;
        }
    }
    cout<<1<<"*"<<endl;
    for(int i=0;i<n;i++)
    {
        cout<<k[i]<<" ";
    }
    cout<<endl;
    for(int i=0;i<n;i++)
    {
        cout<<f[i]<<" ";
    }
    cout<<endl;
    cout<<mini+1<<endl;
    if(k[minri])
    {
        solve(mini);
    }
    solve(minri);
}
int main()
{
    freopen("duel.in","r",stdin);
    freopen("duel.out","w",stdout);
    scanf("%d",&n);
    int minri=0;
    int x=0,y=0;
    for(int i=0;i<n;i++)
    {
        scanf("%d",&r[i]);
        if(r[i]<r[minri])minri=i;
        if(r[i]>r[maxn])maxn=i;
        if(r[i]==1)
        {
            x++;
        }
       if(r[i]==2)y++;
        //minr=min(r[i],minr);
    }
    if(r[minri]==1&&r[maxn]==2)
    {
        //cout<<x<<" "<<y<<endl;
        if(y>=x)cout<<n-x<<endl;
        if(y<x)cout<<n-y<<endl;
        return 0;
    }
    solve(minri);
    int cnt=0;
    for(int i=0;i<n;i++)
    {
        if(!k[i])cnt++;
    }
    printf("%d",cnt);
    fclose(stdin);
    fclose(stdout);
    return 0;
}
